import { NgModule } from '@angular/core';
import { CommonModule } from '@angular/common';
import { ReactiveFormsModule } from '@angular/forms';
import { FormsModule } from '@angular/forms';

import { NzCardModule } from 'ng-zorro-antd/card';
import { NzGridModule } from 'ng-zorro-antd/grid';
import { NzIconModule } from 'ng-zorro-antd/icon';
import { NzButtonModule } from 'ng-zorro-antd/button';
import { NzFormModule } from 'ng-zorro-antd/form';
import { NzInputModule } from 'ng-zorro-antd/input';
import { NzSelectModule } from 'ng-zorro-antd/select';
import { NzCascaderModule } from 'ng-zorro-antd/cascader';
import { NzTableModule } from 'ng-zorro-antd/table';
import { NzSwitchModule } from 'ng-zorro-antd/switch';
import { NzPaginationModule } from 'ng-zorro-antd/pagination';
import { NzModalModule } from 'ng-zorro-antd/modal';
import { NzMessageModule } from 'ng-zorro-antd/message';
import { NzRadioModule } from 'ng-zorro-antd/radio';
import { NzUploadModule } from 'ng-zorro-antd/upload';

import { PmsRoutingModule } from './pms-routing.module';


import { ProductApiService } from '../../api/product-api.service';
import { BrandApiService } from '../../api/brand-api.service';
import { BrandDetailResolverService } from './brand/brand-detail-resolver.service';

import { BrandComponent } from './brand/brand.component';
import { AddProductComponent } from './add-product/add-product.component';
import { ProductCateComponent } from './product-cate/product-cate.component';
import { ProductAttrComponent } from './product-attr/product-attr.component';
import { ProductComponent } from './product/product.component';

import { PipesModule } from '../../pipes/pipes.module';
import { ProductDetailComponent } from './product-detail/product-detail.component';
import { UpdateProductComponent } from './update-product/update-product.component';
import { ProductCateDetialComponent } from './product-cate/product-cate-detial/product-cate-detial.component';
import { ProductCateAdderComponent } from './product-cate/product-cate-adder/product-cate-adder.component';
import { ProductCateUpdaterComponent } from './product-cate/product-cate-updater/product-cate-updater.component';
import { BrandAdderComponent } from './brand/brand-adder/brand-adder.component';
import { BrandUpdaterComponent } from './brand/brand-updater/brand-updater.component';
import { BrandDetialComponent } from './brand/brand-detial/brand-detial.component';
import { ProductAttrListComponent } from './product-attr/product-attr-list/product-attr-list.component';
import { ProductAttrAdderComponent } from './product-attr/product-attr-adder/product-attr-adder.component';
import { ProductAttrEditerComponent } from './product-attr/product-attr-editer/product-attr-editer.component';
import { ProductAttrDetailComponent } from './product-attr/product-attr-detail/product-attr-detail.component'


@NgModule({
  declarations: [
    BrandComponent,
    AddProductComponent,
    ProductCateComponent,
    ProductAttrComponent,
    ProductComponent,
    ProductDetailComponent,
    UpdateProductComponent,
    ProductCateDetialComponent,
    ProductCateAdderComponent,
    ProductCateUpdaterComponent,
    BrandAdderComponent,
    BrandUpdaterComponent,
    BrandDetialComponent,
    ProductAttrListComponent,
    ProductAttrAdderComponent,
    ProductAttrEditerComponent,
    ProductAttrDetailComponent
  ],
  imports: [
    NzCardModule,
    CommonModule,
    ReactiveFormsModule,
    FormsModule,
    PmsRoutingModule,
    PipesModule,
    NzGridModule,
    NzIconModule,
    NzButtonModule,
    NzFormModule,
    NzInputModule,
    NzSelectModule,
    NzCascaderModule,
    NzTableModule,
    NzSwitchModule,
    NzPaginationModule,
    NzModalModule,
    NzMessageModule,
    NzRadioModule,
    NzUploadModule,
  ],
  providers:[

    ProductApiService,
    BrandApiService,
    BrandDetailResolverService
  ]
})
export class PmsModule { }
